iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Modern Web

Javascripts惡補小教室系列 第 10

Day10 Javascript 陣列for loop (2)

  • 分享至 

  • xImage
  •  

Javascript 還有其他的循環方式,來應付不同的情況,接下來我們就繼續介紹吧。

For of 循環用法
除了迭帶平常的陣列、物件以外,For of 還可以迭帶出比較特別的對象,像是字符串。

用法

      for (const 儲存的變量 of 迭帶對象) {
        要做的事情
      }

      for (const iterator of object) {
        console.log(iterator);
      }

範例
我們將宣告person變數,是一個陣列,並用For of 去迭帶陣列,將陣列印出來。

      let person = ["jason", "leo", "dina"];
      for (const iterator of person) {
        console.log(iterator);
      }

https://ithelp.ithome.com.tw/upload/images/20220913/201410879LOzNBMKEb.png
打開F12控制台,我們可以分別看到將陣列裡的元素('jason'、'leo'、'dina')給印出來。

那如果今天是字符串呢?一樣可以把字符串分離並迭帶出來嗎?讓我們試試看吧!

範例

      let name = "helloWorld";
      for (const iterator of name) {
        console.log(iterator);
      }

接下來一樣透過控制台F12把結果給印出來。
https://ithelp.ithome.com.tw/upload/images/20220913/20141087JlqVtAhbfK.png
一樣可以把字符串透過For of 的方法給迭帶出來,這樣子要取字符串單一個字時,就有方法可以方便使用者去操作了。

While循環
前面都在介紹關於for系列的循環,我們接下來要看的就是無窮迴圈循環,while迴圈!只要當條件成立時,就會不停地重複迴圈裡的內容,直到條件不成立,才會跳出迴圈。所以在使用時要特別小心,不然可會造成大當機,甚至瀏覽器崩潰喔!

範例

    <p id="demo"></p>
    <script>
      let i = 0;
      let text = "";
      while (i < 10) {
        text = text + "<br>現在數字到" + i;
        i++;
      }
      document.getElementById("demo").innerHTML = text;
    </script>

我們將數字從0開始跑,當i大於10的時候,條件不成立,所以while迴圈停止。印出數字從0~10。
https://ithelp.ithome.com.tw/upload/images/20220913/20141087x73tooeZIF.png
介紹完了while迴圈後,肯定要說他的好兄弟,Do/While迴圈!

Do/While迴圈
do/while迴圈是先做括號內要執行的事情,在檢查條件(while),檢查完後若是真的話,就會再執行括號內的內容,差別就是在於先做後檢查(do/while),還是先檢查後做(while迴圈)。

    <p id="demo"></p>
    <script>
      let i = 0;
      let text = "";
      do {
        text = text + "<br>現在數字是 " + i;
        i++;
      } while (i < 10);
      document.getElementById("demo").innerHTML = text;

執行後一樣的結果,但不同的程式碼,是不是很神奇呢?明明都是一樣的,但邏輯不同後又百百種的寫法,無論是for還是while類迴圈都可以去迭帶重複程式碼,但使用上要格外注意,尤其是while迴圈,一不小心就會走到死胡同!

那今天的介紹就到這邊了,明天讓我們來看看陣列方法吧。


上一篇
Day9 Javascript 陣列for loop (1)
下一篇
Day11 Javascript陣列方法
系列文
Javascripts惡補小教室30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言